/*
* 作者: wupengxin
* 创建时间: 2016-08-23 19:47:10
* 读取工程配置文件
*/
package common

import (
	"os"
	"io"
	"bytes"
	"encoding/json"
	"errors"
)


func ReadConf(path string)  (map[string] interface{}, error){
	file, e:= os.Open(path)
	if e!= nil{
		return nil, e
	}
	defer file.Close()

	buf := bytes.NewBuffer(make([]byte, 0))
	io.Copy(buf, file)
	contant := buf.String()
	var dat  map[string]interface{}
	if e := json.Unmarshal([]byte(contant), &dat); e!=nil{
		return nil, e
	}
	return dat, nil
}

func GetInputConf(path string) (map[string]interface{}, error) {
	ret, e := ReadConf(path)
	if e != nil{
		return nil, e
	}
	//返回所有的inputs 的插件内容
	if v, ok := ret["input"]; !ok{
		return nil, errors.New("inout config error")
	}else {
		return v.(map[string]interface{}), nil
	}
}

func GetOutConf(path string) (map[string]interface{}, error)  {
		ret, e := ReadConf(path)
	if e != nil{
		return nil, e
	}
	//返回所有的inputs 的插件内容
	if v, ok := ret["output"]; !ok{
		return nil, errors.New("output config error")
	}else {
		return v.(map[string]interface{}), nil
	}
}